/**
 * Created by lixiaodi on 2018/11/16.
 */
mini.parse();
//得到页面上的表
var grid1 = mini.get("allGrid");
var grid2 = mini.get("wordTable");
//信号量
var parTableClId;   //父节点ID
var parClassName;
var firstLoad = true;
var initIds;                   //存放初始数据id，这个作为选中数据
var childTableLen;
var addSelectedArr = [];		//添加的子节点数组;
//左边所有表格的数据(所有表数据)
grid1.load(ajaxUrl + "/tableClass/findByMtableAndStable.do");
grid1.load();
//grid1.load(ajaxUrl + "/tableClass/list.do");

//父页面给子页面传值
function Delivery(data){
    data = mini.clone(data);
    //父页面传ID
    parTableClId = data.tableClassId;
    parClassName = data.tableClassName;
    //右边子表数据
    $.ajax({
        url : ajaxUrl + "/tableClass/findByMTableToSTable.do?tableClassId=" + parTableClId,
        type : "POST",
        success : function(data){
            var childGridData = data.data;
            childTableLen = childGridData.length;
            grid2.setData(childGridData);
        },
        error : function(data){
            console.log("失败");
        }
    });
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
grid1.on("load", function (e) {
    if (firstLoad) {
        firstLoad = false;
        if (initIds) {
            var rows = [];
            for (var i = 0, l = initIds.length; i < l; i++) {
                var o = grid1.getRow(initIds[i]);
                if (o) rows.push(o);
            }
            grid1.selects(rows);
            addSelected();
        }
    }
});
function SetData(ids) {

    if (typeof ids == "string") {
        ids = ids.split(",");     //"1,2" => [1, 2]
    }
    initIds = ids;

    grid1.load();
    grid1.deselectAll();
    grid2.clearRows();
}

function GetData() {
    var rows = grid2.getData();
    var ids = [], texts = [];
    for (var i = 0, l = rows.length; i < l; i++) {
        var row = rows[i];
        ids.push(row.id);
        texts.push(row.name);
    }

    var data = {};
    data.id = ids.join(",");
    data.text = texts.join(",");
    return data;
}
//选择（添加子节点）
function addSelected() {
    //判断与父页面的主表是否一致，一致不可选
    var items = grid1.getSelecteds();
    if(items.length > 0){
        for(var i = 0; i < items.length; i++){
            if(items[i].tableClassId != parTableClId){
                grid1.removeRows(items);
                grid2.addRows(items);
                addSelectedArr.push(items);
            }else{
                mini.alert("不能选择主表");
            }
        }
    }else{
        mini.alert("请至少选择一条数据");
    }
}
//选择子节点删除
function removeSelecteds() {
    //得到所有被选择的字表
    var item = grid2.getSelected();
    var childData = grid2.getData();
    if(item){
        //得到该主表的原有子表，对比要删除的字表是否是原有子表，如果是不可删除
        $.ajax({
            url : ajaxUrl + "/tableClass/findByMTableToSTable.do?tableClassId=" + parTableClId,
            type : "POST",
            success : function(data){
                var childsTableArr = data.data;
                //如果该表没有原有子表，可以删除
                if(childsTableArr.length < 1){
                    grid2.removeRow(item);
                    grid1.addRow(item);
                }else{
                    for(var i = 0; i < childsTableArr.length; i++){
                        if(item.tableClassId != childsTableArr[i].tableClassId){
                            grid2.removeRow(item);
                            grid1.addRow(item);
                            var removeIdx = getIndex (addSelectedArr,item);
                            addSelectedArr.splice(removeIdx,1);
                        }else{
                            mini.alert("原有子表存在关系，不能删除");
                        }
                    }
                }
            },
            error : function(data){
                console.log('请求失败');
            }
        });
        //grid2.setData(childGridData);
        ////请求主表的原子表
        //$.ajax({
        //    url : ajaxUrl + "/tableClass/findByMTableToSTable.do?tableClassId=" + parTableClId,
        //    type : "POST",
        //    success : function(data){
        //        //原子表数据
        //        var childGridData = data.data;
        //        console.log(childGridData);
        //        if(childGridData){
        //            for(var n = 0; n < childGridData.length; n++){
        //                if(childGridData[n].tableClassId != childData[0].tableClassId){
        //                    grid2.removeRows(item);
        //                    grid1.addRows(item);
        //                    grid2.setData(childGridData);
        //                }else{
        //                    mini.alert("不可删除原有子表");
        //                }
        //            }
        //        }else{
        //            grid2.removeRow(item);
        //            grid1.addRow(item);
        //            grid2.setData(childGridData);
        //        }
        //    },
        //    error : function(data){
        //        console.log("失败");
        //        console.log(data);
        //    }
        //});
    }else{
        mini.alert("请选择至少一条数据");
    }
}
//保存
function save(){
	var addChildArr = [];
	for(var n = 0; n < addSelectedArr.length; n++){
		delete addSelectedArr[n][0].createTables;
		delete addSelectedArr[n][0]._id;
		delete addSelectedArr[n][0]._state;
		delete addSelectedArr[n][0]._uid;
		addChildArr.push(addSelectedArr[n][0]);
	}
    //主表ID
    console.log(parClassName);
    //var childrensGrid = grid2.getData();
    var childs = [];
    for(var i = 0; i < addChildArr.length; i++){
        var childsObj = {};
        childsObj.cTableName = parClassName;
        childsObj.mTable = parTableClId;
        childsObj.obj = addChildArr[i].tableClassName;
        childsObj.sTable = addChildArr[i].tableClassId;
        childs.push(childsObj);
    }
    var childsString = JSON.stringify(childs);
    $.ajax({
        url : ajaxUrl + "/Base/createMTableKey.do",
        type : "POST",
        data : {
            jsonToString : childsString
        },
        success : function(data){
            mini.alert("保存成功");
        },
        error : function(data){
            console.log(data);
        }
    });
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//页面的保存关闭
function CloseWindow(action) {
    if (window.CloseOwnerWindow) return window.CloseOwnerWindow(action);
    else window.close();
}

function onOk() {
    CloseWindow("ok");
}
function onCancel() {
    CloseWindow("cancel");
}

//判断两个对象是否值一致
function isObjectValueEqual(a, b) {
    var aProps = Object.getOwnPropertyNames(a);
    var bProps = Object.getOwnPropertyNames(b);
    if (aProps.length != bProps.length) {
        return false;
    }
    for (var i = 0; i < aProps.length; i++) {
        var propName = aProps[i];
        if (a[propName] !== b[propName]) {
            return false;
        }
    }
    return true;
}
//返回被删除的一条数据的index值
function getIndex (_arr,_obj) {
    var len = _arr.length;
    for(var i = 0; i < len; i++)
    {
        if(isObjectValueEqual(_arr[i],_obj))
        {
            return i;
        }
    }
    return -1;
};

//查询
//function search() {
//    var key = mini.get("key").getValue();
//    grid1.load({ key: key });
//}
